package com.yunti.yntk.api;


import com.alibaba.fastjson.JSONObject;
import com.yunti.yntk.api.req.ExamSpecialScoreReq;
import com.yunti.yntk.api.req.ExportScoreReq;
import com.yunti.yntk.api.req.LoginReq;
import com.yunti.yntk.api.req.UpdateReq;
import com.yunti.yntk.api.res.*;
import com.yunti.yntk.db.po.ExamItem;
import com.yunti.yntk.db.po.ExamStu;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.*;

import java.util.List;

public interface Request {

    @POST("/bzExamApi/api/login")
    Call<Verify> login(@Query("phone") String phone, @Query("password") String password);


    @POST("/bzExamApi/login")
    Call<JSONObject> login2(@Body LoginReq loginReq);



    @POST("/bzExamApi/business/stu/getList")
    Call<Result<List<ExamStu>>> getListByBatch(@Body ExamStu examStu);

    @POST("/bzExamApi/business/stu/getBatchRecords")
    Call<Result<List<ExamStu>>> getBatchRecords(@Body JSONObject GetBatchRecordsReq);

    @POST("/bzExamApi/business/stu/getExamGroupBySubCode")
    Call<Result<List<RecordGroupsRes>>> getExamGroupBySubCode(@Body JSONObject getRecordGroupsReq);

    @GET("/bzExamApi/business/batch/getList")
    Call<Result<List<ExamBatchRes>>> getBatchList();

    @POST("/bzExamApi/business/stu/setScore")
    Call<Result> setScore(@Body JSONObject SetScoreReq);

    @POST("/bzExamApi/business/stu/fieldStuReady")
    Call<Result> fieldStuReady(@Body JSONObject SetScoreReq);

    @POST("/bzExamApi/business/stu/exportScore2")
    Call<ResponseBody> exportScore(@Body ExportScoreReq exportScoreReq);


    @POST("/bzExamApi/yn/longJump")
    Call<State> updateLong(@Query("high") Double high, @Query("kh") String kh , @Query("count") Integer count);

    @POST("/bzExamApi/yn/throwBall")
    Call<State> updateThrow(@Query("high") Double high,@Query("kh") String kh ,@Query("count") Integer count);


    @POST("/bzExamApi/zx/updateScoreByKh")
    Call<State> updateScoreByKh(@Query("high") Double high,@Query("kh") String kh ,@Query("zxdm") String zxdm ,@Query("count") Integer count,@Query("rule") Boolean rule);


    @GET("/bzExamApi/business/item/getItemList")
    Call<Result<List<ExamItem>>> getExamItemList();

    @POST("/bzExamApi/business/specialArrange/getExamStuWithSpecialResByXmdm")
    Call<Result<List<ExamStuWithSpecialRes>>> getExamStuWithSpecialResByXmdm(@Body GetSpecialGroupByXmdmReq getSpecialGroupByXmdmReq);

    @POST("/bzExamApi/business/specialArrange/getSpecialGroupByXmdm")
    Call<Result<List<SpecialGroupRes>>> getSpecialGroupByXmdm(@Body GetSpecialGroupByXmdmReq getSpecialGroupByXmdmReq);

    @POST("/bzExamApi/business/specialArrange/setSpecialScore")
    Call<Result<ExamSpecialArrange>> setSpecialScore(@Body ExamSpecialScoreReq examSpecialScoreReq);

    @POST("/bzExamApi/business/stu/getExamStuByGroupNum")
    Call<Result<List<ExamStuWithScore>>> getExamStuByGroupNum(@Body JSONObject GetBatchRecordsReq);

    @POST("/bzExamApi/business/stu/updateScore")
    Call<Result<ExamStuWithScore>> updateScore(@Body UpdateReq updateReq);

    @POST("/bzExamApi/business/qualityArrange/deviceExportScoreJump")
    Call<ResponseBody> exportScoreJump(@Body ExportScoreReq exportScoreReq);

    @POST("/bzExamApi/business/qualityArrange/deviceExportScoreThrow")
    Call<ResponseBody> exportScoreThrow(@Body ExportScoreReq exportScoreReq);

    @POST("/bzExamApi/business/specialArrange/exportSpecialScore2")
    Call<ResponseBody> exportSpecialScore2(@Body ExportScoreReq exportScoreReq);

    @POST("/bzExamApi/business/stu/getRecordGroups")
    Call<Result<List<RecordGroupsRes>>> getRecordGroups(@Body JSONObject getRecordGroupsReq);
}
